<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态组件与v-once指令</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 动态组件方式一 -->
        <!--<component :is="type"></component>-->
        <!-- 动态组件方式二 -->
        <!-- 因为v-if每次动态判断时后创建于销毁组件，有一定性能损耗，因此使用v-once指令，将组件信息存放在内存中，下次直接从内存中读取 -->
        <child-one v-if="type === 'child-one'"></child-one>
        <child-two v-if="type === 'child-two'"></child-two>

        <button @click="handleClick">Change</button>
    </div>
    <script>
        Vue.component("child-one", {
            template : "<div v-once>child-one</div>"
        })

        Vue.component("child-two", {
            template : "<div v-once>child-two</div>"
        })

        var vm = new Vue({
            el : "#app",
            data : {
                type : "child-one"
            },
            methods : {
                handleClick : function () {
                    this.type = this.type === 'child-one' ? "child-two" : "child-one"
                }
            }
        })
    </script>
</body>
</html>